Comparison between different descriptions of a web service

ABSTRACT

In one embodiment, a computer-implemented method for comparing first and second descriptions of a web service includes computing a distance between each type used as a parameter in the first description and each type used as a parameter in the second description. A distance is calculated between methods in each of two or more pairs of methods. Each pair includes a method in the first description and a method in the second description. The calculating is performed by comparing the parameters of the first set of methods and the second set of methods using the computed distances between types. To the calculated distance between each pair of methods is added the distance between the names of the compared methods and the distance between the returned types of the compared methods. For each method in the first description, the method in the second description with the lowest calculated distance is output.

PRIORITY

This application is a continuation of and claims priority from U.S.patent application Serial No. 14/280,895, filed on May 19, 2014,entitled “COMPARISON BETWEEN DIFFERENT DESCRIPTIONS OF A WEB SERVICE,”which in turn claims priority from the Great Britain patent application1309942.9, filed on June 4, 2013. The entire contents of both theseapplications are incorporated herein by reference.

BACKGROUND

The present invention relates generally to web services and, moreparticularly, to comparing two different descriptions of a web service.

Web services are a fundamental cornerstone of the web, providing onlinefunctionality for web applications as well as for other web services. Assuch, web services have become an important subject of functionaltesting, including security testing, type state checking, etc. Animportant challenge in testing web services is to ensure that existingtests, already created against a specific version of a web service, canbe reused or easily maintained when the web service is updated to anewer version. The same challenge exists for the maintenance ofapplications based on the web service. Existing testing tools for webservices propose several manual methods to deal with the change of theweb service from version i to version i+1. This leads to many end userinteractions in order to discover which methods and types have beenchanged in order to propose specific fixes for the existing artefacts.

SUMMARY

In one embodiment, a computer-implemented method for comparingdescriptions of a web service includes computing a distance between eachtype used as a parameter in a first description of a web service andeach type used as a parameter in a second description of a web service,where the first description includes a first set of methods, the seconddescription includes a second set of methods, and each method includesone or more parameters. A distance is calculated between methods in eachof two or more pairs of methods, where each pair of methods includes amethod in the first description and a method in the second description,and where the calculating is performed by comparing the parameters ofthe first set of methods and the second set of methods using thecomputed distances between types. To the calculated distance betweeneach pair of methods is added a measure of the distance between thenames of the compared methods and a measure of the distance between thereturned types of the compared methods. For each method in the firstdescription, at least the method in the second description with thelowest calculated distance is output.

In another embodiment, a system for comparing descriptions of a webservice includes a computer processor. The computer processor isconfigured to compute a distance between each type used as a parameterin a first description of a web service and each type used as aparameter in a second description of a web service, where the firstdescription includes a first set of methods, the second descriptionincludes a second set of methods, and each method includes one or moreparameters. The computer processor is further configured to calculate adistance between methods in each of two or more pairs of methods, whereeach pair of methods includes a method in the first description and amethod in the second description, and where the calculating is performedby comparing the parameters of the first set of methods and the secondset of methods using the computed distances between types. To thecalculated distance between each pair of methods, the computer processoris configured to add a measure of the distance between the names of thecompared methods and a measure of the distance between the returnedtypes of the compared methods. For each method in the first description,at least the method in the second description with the lowest calculateddistance is output.

In yet another embodiment, a computer program product for comparingdescriptions of a web service includes a computer readable storagemedium having program instructions embodied therewith. The programinstructions are executable by a processor to cause the processor toperform a method. The method includes computing a distance between eachtype used as a parameter in a first description of a web service andeach type used as a parameter in a second description of a web service,where the first description includes a first set of methods, the seconddescription includes a second set of methods, and each method includesone or more parameters. Further according to the method, a distance iscalculated between methods in each of two or more pairs of methods,where each pair of methods includes a method in the first descriptionand a method in the second description, and where the calculating isperformed by comparing the parameters of the first set of methods andthe second set of methods using the computed distances between types. Tothe calculated distance between each pair of methods is added a measureof the distance between the names of the compared methods and a measureof the distance between the returned types of the compared methods. Foreach method in the first description, at least the method in the seconddescription with the lowest calculated distance is output.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention. For a better understanding of the invention with theadvantages and the features, refer to the description and to thedrawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Some embodiments of the present disclosure will now be described, by wayof example only, with reference to the following drawings, in which:

FIG. 1 is a flowchart of a process for comparing two differentdescriptions of a web service, according to an embodiment;

FIG. 2 is a schematic diagram of a computer and two descriptions of aweb service, according to an embodiment;

FIG. 3 is a table showing distance measurements for comparisons ofmethods in two descriptions of a web service, according to anembodiment; and

FIG. 4 is a schematic diagram of two different descriptions of a webservice, according to an embodiment.

DETAILED DESCRIPTION

According to some embodiments of this disclosure, an identificationsystem or method can identify which methods in a later version of adescription of a web service most likely correspond to particularmethods in an earlier version of the description of the web service.This may address the problem of updating existing applications orexisting tests applications or application suites when a web servicedescription changes from version i to version i+1, with a reducedquantity of end user operations. Based on the use of a distance betweenExtensible Markup Language (XML) Scheme Definition (XSD) types thatcompose the input and output parameters of a service method, theidentification system and method may identify the updated method in theversion i+1 of the description.

The distance between types may be represented as a numerical value,which reflects the difference between the types being compared. Thepaper “Similarity of XML Schema Definitions,” by Irena Mlynkova,provides one methodology of how the distance between two different typescan be represented as a numerical value.

According to some embodiments, the status of a service method may beidentified as, for example, having been deleted (i.e., this method nolonger exists) or updated (i.e., in terms of input/output and changes inthe sub-types). Based on an embodiment, a service method may beprojected into a set of vectors of parameters, and a distance may bemeasured between methods in the earlier description compared to thelater description, thus obtaining the best method candidates in thelater version. Based on a delta analysis of the updates to the XSD typesand the existing test suites (e.g., existing instances of XML callsagainst the web service), the identification system may pick up valuesfrom previous artefacts that still make sense in the updated methodcall. As a result, an end user's work for the version i of the webservice may be at least partially preserved and moved into the versioni+1 of the web service.

In some embodiments, the activity of calculating a distance between eachmethod in the first description and each method in the seconddescription includes selecting the minimum value generated from a set ofdistance measurements that include all combinations of the parameters inthe compared methods. The most accurate distance measurement, whencomparing two methods, may be generated by capturing the lowest valuefrom a set of all of the combinations of the distance measurements. Forexample, if methodA(a,b) is compared to methodB(x,y), then two possiblecombinations of parameters are possible: (1)distance(a,x)+distance(b,y), and (2) distance(a,y)+distance(b,x). Thelower of these two values may be returned as the distance betweenmethodA and methodB. If the methods have more than two parameters, thena higher quantity of possible combinations may exist, but the samemethodology may apply, in that when considering all of the possibleparameter combinations, the identification system may use only thelowest distance value that is returned.

The act of outputting, for each method in the earlier description, atleast the method in the later description with the lowest calculateddistance may include outputting, for each method in the earlierdescription, an ordered list of methods in the second description withthe lowest calculated distances. The process may be designed toidentify, for each method in the earlier description, the best match ofa method in the later description. However, there is no reason that onlyone candidate (i.e., the best candidate) has to be returned. An orderedlist may therefore be provided that orders the matching methods in thelater description according to their respective distances from themethod in the earlier description. This can allow a user to considerdifferent options, and the user may decide that a different method fromthe later description is actually more likely to be the match for themethod in the earlier description, than the method with the shortestdistance.

In some embodiments, a calculated distance may include a measure of thedistance between the names of the compared methods. Thus, calculating anoverall distance between two methods may include generating a vectorrepresentation of the calculated distance based on a parametercomparison, generating a measure of the distance between the names ofthe compared methods, and generating a measure of the distance betweenthe returned types of the compared methods. Vector representations canbe used to accurately determine the overall distance score, taking intoaccount the different characteristics of the methods. Suchcharacteristics may include the parameters of the methods, the names ofthe methods, and the types returned by the methods. The identificationsystem may calculate a Cartesian product of these three calculateddistances.

FIG. 1 shows a method for comparing two different descriptions of a webservice, according to some embodiments of this disclosure, where eachdescription includes a set of methods and each method includes one ormore parameters. At block S1 of the method, a distance may be computedbetween each type used as a parameter in a first description (i.e., anearlier description) and each type used as a parameter in a seconddescription (i.e., a later description). A numerical value may beobtained for each pair of types that are present in the parameters ofthe methods. For example, if the first description has methods referringto types X and Y and the second description has methods referring totypes A and B, then four distances may be computed: (X,A) (X,B) (Y,A)and (Y,B).

Block S2 includes calculating a distance between each method in thefirst description and each method in the second description by comparingthe parameters of the compared methods using the computed distancesbetween types. This process will be described in more detail below, butessentially every method in the first description may be compared toevery method in the second description, with a single distance measurebeing generated for each method pair. That single distance measure maybe based on the computed values from block S1. So for example, ifmethodV1(type X) is compared to methodV2(type A, type B), then theoutputted distance measure may be the lower of the two distance values,(X,A) and (X,B), generated in block S1.

Block S3 includes adding to each calculated distance a measure of thedistance between the names of the compared methods. Then, at block S4, ameasure of the distance between the returned types of the comparedmethods may be added to each calculated distance. Block S5 includesoutputting, for each method in the first description, at least themethod in the second description with the lowest calculated distance. Insome embodiments, however, multiple methods of the second descriptionmay be returned, each with its corresponding calculated distance. Inthis way, for each method in the earlier description, the identificationsystem may identify the most likely matching candidate(s) in the seconddescription, which may be displayed to a user.

FIG. 2 shows an example desktop computer 10 that includes a displaydevice 12, a processor 14, and a user interface device 16. The processor14 is controlled by a computer program product that is stored on acomputer readable medium 18, which is a CD-ROM. The computer programproduct comprises instructions that are used to control the operation ofthe processor 14. The processor may be configured to compare twodifferent descriptions 20 and 22 of a web service. The first description20 is version i of the web service and the second description 22 is theversion i+1 of the web service. The first description 20 is the earlierversion of the web service and the second description 22 is the later(i.e., updated and changed) version of the web service.

Once a web service has been changed and the description of the webservice has been changed accordingly, then applications that used theearlier web service and testing tools that were accurate for that webservice are no longer safe to use and need to be adjusted to take intoaccount the changes made in the new web service. The descriptions 20 and22 may each include a set of methods, where each method includes one ormore parameters. In order to facilitate the updating of application andtesting tools, it is desirable to know which methods in the olddescription 20 correspond to which methods in the new description 22.

The processor 14 may be configured to identify those methods in thesecond description 22 that correspond to the methods in the firstdescription 20. To this end, each method in the first description 20 maybe compared to each method in the second description 22. A numericaldistance value may be assigned to each method pair, and for each methodin the first description 20, there may be a best candidate method in thesecond description 22 matching this method. The user may be presentedwith a display that shows the numerical matches, either showing just thebest match or by showing an ordered list of candidates, for each methodin the earlier version of the description 20, which can be used toselect the appropriate matching method.

In the context of a web service description file standard, such as WebService Definition Language (WSDL), the input to the processor 14 may bea WSDL file Wi and a WSDL file Wi+1. The output may be a mapping fromeach web service method in WSDL Wi to the most appropriate method inWSDL Wi+1. For all of the XSD types in Wi and Wi+1, the identificationsystem may measure a distance for each type in Wi compared to each typein Wi+1.

For each method m in Wi compared to each method m′ in Wi+1, theidentification system may execute the Cartesian product between an mWivector and all the coordinate permutations of an m′Wi+1 vector. Thevectors may be aligned in terms of dimensions, and where extradimensions exist on either side (mWi or m′Wi+1), a 0 may be placed. Thevector mWi may have coordinates which are 1 or 0. For instance, acoordinate may be 1 if a type exist at this place, or 0 if dimensionshave been added. Vector m′Wi+1 may have coordinates that are thedistance between its own type and the initial type in m, parameter byparameter in a one-to-one correspondence. For all the permutation of theparameters into the method m′ in Wi+1, the identification system maycompute the Cartesian product in order to locate the arrangement thathas the minimum value.

By selecting the results that minimize the product and then using thedistance between the names of the methods and of the type of the outputin Wi compared to the type of the outputs in Wi+1 to re-filter theresults, the final result may be proposed to the end user to select thecorrect matching method as required. FIG. 3 shows an example of howmethods m1 to m4 of a first description of a web service are compared tomethods M′1 to m′5 of a second description of the web service. The tablelists the distance values generated from the various different methodpair comparisons. In each row of the table, the lowest distance valuemay indicate the method in the second description that matches mostclosely to the method in the first description.

The comparison of the names of the methods may be helpful to provide anotion of semantic similarity between different methods. This comparisonmay be performed using a Levenstein distance, which is a commonalgorithm used to measure the distance between strings. For example,three different methods as follows: method1status=recover_account_status(x,y,z), method2status=update_account(x,y,z), and method3status=update_enduser_account(x,y,z) can be compared using theLevenstein distance, which will provide the following output:d(m1,m2)=13, d(m1,m3)=18 and d(m2,m3)=8. From this result, theidentification system may determine that methods 2 and 3 are close,whereas method 1 is not close to either of the other two methods.

FIG. 4 illustrates an example relating to a web service with one methodin a version 1, and two methods in a version 2. In the WSDL version 1,the method is Artefact getArtefact(Authentication, Param1, Param2), andin WSDL version 2, the methods are Token Authenticate(Authentication)and Artefact getArtefact(Param1, Param2, Token), as shown in the figure.In this example, it is assumed that the types Authentication, Param1,and Param2 are the same and that the distance between the types areD(Artefact and Token type)=10; D(Authentication andToken)=11;D(Authentication and Param1)=12; and D(Authentication andParam2)=13. It is assumed also that the distance between the nameAuthenticate and getArtefact is 9, calculated using the Levensteindistance.

The processor 14 may calculate the distance between ArtefactgetArtefact(Authentication, Param1, Param2) from version 1 of the webservice description with Token Authenticate(Authentication) from version2. To that end, the processor 14 may look at the parameters in the twomethods being compared. This distance from the parameters point of viewmay be the minimum of Distance (Authentication, Authentication)=0,Distance (Authentication, Param1)=12, and Distance (Authentication,Param2)=13, with all of the permutation of the types having beenconsidered. In this example, the result is 0. The processor 14 may thenadd the name distance so that 0+Distance(Name authenticate, NamegetArtefact)=9. Then the processor 14 may add the distance related tothe returned type 0+9+Distance (Artefact, Token)=0+9+10, and the finalresult is therefore Distance (Method getArtefact(V1), MethodAuthenticate(V2))=19.

The processor 14 may follow the same process to calculate the distancebetween Artefact getArtefact(Authentication, Param1, Param2) fromversion 1 with Artefact getArtefact(Param1, Param2, Token) from version2. The processor 14 may examine the parameters of the methods beingcompared and the distance from the parameter point of view, and mayidentify the minimum of:

D(Authentication, Param1)+D(Param1,Param2)+D(Param2,Token);

D(Authentication, Param2)+D(Param1,Token)+D(Param2,Param1);

D(Authentication, Token)+D(Param1,Param1)+D(Param2,Param2); and

for all the permutations available (6 in this example). The final resultin this case is D(Authentication,Token)+D(Param1,Param1)+(Param2,Param2)=11+0+0. The processor 14 may addthe name distance: 11+Distance(Name getArtefact, NamegetArtefact)=11+0=11; and may add the distance related to the returnedtype: 11+Distance (Artefact, Artefact)=11+0=11. The final result isDistance (Method getArtefact(V1)/Method getArtefact(V2))=11.

As a result the identification system may construct the ordered list ofbest match with length for the method getArtefact(V1) which is: (1)getArtefact(V2) with a length of 11; and (2) Authenticate with a lengthof 19.

In terms of best match for getArtefact(V1) the invention will propose tothe end user the method getArtefact(V2). The same principles are usedwhen the WSDL version 1 and version 2 contains more methods, with moreor less parameters. The results of the process executed by the processor14 will be, for each method in version 1, a list of best matchesdiscovered from version 2.

What is claimed is:
 1. A computer-implemented method for comparingdescriptions of a web service, the method comprising: computing adistance between each type of parameter in a first description of a webservice and each type of parameter in a second description of the webservice, wherein the first description comprises a first set of methods,the second description comprises a second set of methods, and eachmethod comprises one or more parameters; selecting two or more pairs ofmethods, wherein each pair of methods in the two or more pairs ofmethods comprises a respective first method selected from the firstdescription of the web service and a respective second method selectedfrom the second description of the web service; for each of the two ormore pairs of methods, calculating, by a computer processor, arespective distance between the respective first method and therespective second method in the pair of methods, wherein the calculatingcomprises: determining a respective input-parameter distance bycomparing the type of input parameters of the first set of methods inthe first description of the web service and the second set of methodsin the second description of the web service, based on the computeddistances between types of parameters; and wherein the respectivedistance between the respective first method and the respective secondmethod in the pair of methods is a distance sum comprising theinput-parameter distance; and outputting, for each method in the firstdescription of the web service, a corresponding method in the seconddescription having a lowest calculated respective distance among thosepaired with the method in the first description.
 2. Thecomputer-implemented method according to claim 1, wherein, for each ofthe two or more pairs of methods, the calculating the respectivedistance further comprises: determining a respective name distancebetween a string representing a name of the respective first method anda string representing a name of the respective second method in the pairof methods; wherein the respective distance between the respective firstmethod and the respective second method in the pair of methods is thedistance sum further comprising the name distance.
 3. Thecomputer-implemented method according to claim 2, wherein thedetermining the respective name distance between the string representingthe name of the respective first method and the string representing thename of the respective second method in the pair of methods comprisesgenerating a vector representation of the respective distance and thename distance between the string representing the name of the respectivefirst method and the string of the name representing the respectivesecond method in the pair of methods.
 4. The computer-implemented methodaccording to claim 1, wherein, for each of the two or more pairs ofmethods, the calculating the respective distance further comprises:determining a return-parameter distance between a type of parameterreturned by the respective first method and a type of parameter returnedby the respective second method in the pair of methods; wherein therespective distance between the respective first method and therespective second method in the pair of methods is the distance sumfurther comprising the name distance.
 5. The computer-implemented methodaccording to claim 4, wherein the determining the return-parameterdistance between the type of parameter returned by the respective firstmethod and the type of parameter returned by the respective secondmethod in the pair of methods comprises generating a vectorrepresentation of the respective distance and the return-parameterdistance between the type of parameter returned by the respective firstmethod and the type of parameter returned by the respective secondmethod in the pair of methods.
 6. The computer-implemented methodaccording to claim 1, wherein, for each of the two or more pairs ofmethods, the calculating the respective distance comprises selecting theminimum value generated from a set of distance measurements that includeall combinations of the input parameters in the respective first methodand the respective second method.
 7. The computer-implemented methodaccording to claim 1, wherein outputting, for each method in the firstdescription of the web service, the corresponding method in the seconddescription comprises outputting, for each method in the firstdescription of the web service, an ordered list of methods in the seconddescription with the lowest calculated respective distances.
 8. A systemfor comparing descriptions of a web service, the system comprising: amemory having computer-readable instructions; and one or more processorsfor executing the computer-readable instructions, the computer-readableinstructions comprising: computing a distance between each type ofparameter in a first description of a web service and each type ofparameter in a second description of the web service, wherein the firstdescription comprises a first set of methods, the second descriptioncomprises a second set of methods, and each method comprises one or moreparameters; selecting two or more pairs of methods, wherein each pair ofmethods in the two or more pairs of methods comprises a respective firstmethod selected from the first description of the web service and arespective second method selected from the second description of the webservice; for each of the two or more pairs of methods, calculating, by acomputer processor, a respective distance between the respective firstmethod and the respective second method in the pair of methods, whereinthe calculating comprises: determining a respective input-parameterdistance by comparing the type of input parameters of the first set ofmethods in the first description of the web service and the second setof methods in the second description of the web service, based on thecomputed distances between types of parameters; and wherein therespective distance between the respective first method and therespective second method in the pair of methods is a distance sumcomprising the input-parameter distance; and outputting, for each methodin the first description of the web service, a corresponding method inthe second description having a lowest calculated respective distanceamong those paired with the method in the first description.
 9. Thesystem according to claim 8, wherein, for each of the two or more pairsof methods, the calculating the respective distance further comprises:determining a respective name distance between a string representing aname of the respective first method and a string representing a name ofthe respective second method in the pair of methods; wherein therespective distance between the respective first method and therespective second method in the pair of methods is the distance sumfurther comprising the name distance.
 10. The system according to claim9, wherein the determining the respective name distance between thestring representing the name of the respective first method and thestring representing the name of the respective second method in the pairof methods comprises generating a vector representation of therespective distance and the name distance between the stringrepresenting the name of the respective first method and the string ofthe name representing the respective second method in the pair ofmethods.
 11. The system according to claim 8, wherein, for each of thetwo or more pairs of methods, the calculating the respective distancefurther comprises: determining a return-parameter distance between atype of parameter returned by the respective first method and a type ofparameter returned by the respective second method in the pair ofmethods; wherein the respective distance between the respective firstmethod and the respective second method in the pair of methods is thedistance sum further comprising the name distance.
 12. The systemaccording to claim 11, wherein the determining the return-parameterdistance between the type of parameter returned by the respective firstmethod and the type of parameter returned by the respective secondmethod in the pair of methods comprises generating a vectorrepresentation of the respective distance and the return-parameterdistance between the type of parameter returned by the respective firstmethod and the type of parameter returned by the respective secondmethod in the pair of methods.
 13. The system according to claim 8,wherein, for each of the two or more pairs of methods, the calculatingthe respective distance comprises selecting the minimum value generatedfrom a set of distance measurements that include all combinations of theinput parameters in the respective first method and the respectivesecond method.
 14. The system according to claim 8, wherein outputting,for each method in the first description of the web service, thecorresponding method in the second description comprises outputting, foreach method in the first description of the web service, an ordered listof methods in the second description with the lowest calculatedrespective distances.
 15. A computer-program product for comparingdescriptions of a web service, the computer-program product comprising acomputer-readable storage medium having program instructions embodiedtherewith, the program instructions executable by a processor to causethe processor to perform a method comprising: computing a distancebetween each type of parameter in a first description of a web serviceand each type of parameter in a second description of the web service,wherein the first description comprises a first set of methods, thesecond description comprises a second set of methods, and each methodcomprises one or more parameters; selecting two or more pairs ofmethods, wherein each pair of methods in the two or more pairs ofmethods comprises a respective first method selected from the firstdescription of the web service and a respective second method selectedfrom the second description of the web service; for each of the two ormore pairs of methods, calculating, by a computer processor, arespective distance between the respective first method and therespective second method in the pair of methods, wherein the calculatingcomprises: determining a respective input-parameter distance bycomparing the type of input parameters of the first set of methods inthe first description of the web service and the second set of methodsin the second description of the web service, based on the computeddistances between types of parameters; and wherein the respectivedistance between the respective first method and the respective secondmethod in the pair of methods is a distance sum comprising theinput-parameter distance; and outputting, for each method in the firstdescription of the web service, a corresponding method in the seconddescription having a lowest calculated respective distance among thosepaired with the method in the first description.
 16. Thecomputer-program product according to claim 15, wherein, for each of thetwo or more pairs of methods, the calculating the respective distancefurther comprises: determining a respective name distance between astring representing a name of the respective first method and a stringrepresenting a name of the respective second method in the pair ofmethods; wherein the respective distance between the respective firstmethod and the respective second method in the pair of methods is thedistance sum further comprising the name distance.
 17. Thecomputer-program product according to claim 16, wherein the determiningthe respective name distance between the string representing the name ofthe respective first method and the string representing the name of therespective second method in the pair of methods comprises generating avector representation of the respective distance and the name distancebetween the string representing the name of the respective first methodand the string of the name representing the respective second method inthe pair of methods.
 18. The computer-program product according to claim15, wherein, for each of the two or more pairs of methods, thecalculating the respective distance further comprises: determining areturn-parameter distance between a type of parameter returned by therespective first method and a type of parameter returned by therespective second method in the pair of methods; wherein the respectivedistance between the respective first method and the respective secondmethod in the pair of methods is the distance sum further comprising thename distance.
 19. The computer-program product according to claim 18,wherein the determining the return-parameter distance between the typeof parameter returned by the respective first method and the type ofparameter returned by the respective second method in the pair ofmethods comprises generating a vector representation of the respectivedistance and the return-parameter distance between the type of parameterreturned by the respective first method and the type of parameterreturned by the respective second method in the pair of methods.
 20. Thecomputer-program product according to claim 15, wherein, for each of thetwo or more pairs of methods, the calculating the respective distancecomprises selecting the minimum value generated from a set of distancemeasurements that include all combinations of the input parameters inthe respective first method and the respective second method.